package top.infopub.model.fia;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import top.infopub.generic.GenericEntity;

import java.math.BigDecimal;
import java.util.Date;

/** 预算管理(FIA_BUDGET) **/
public class Budget extends GenericEntity  {
	private static final long serialVersionUID = 1L;

	/** SGUID */
	private String id;

	/** 单据编号 */
	private String codes;

	/** 项目全局唯一编码 */
	private String proCode;

	/** 添加人 */
	private String addBy;

	/** 添加时间 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date addTime;

	/** 最后修改人 */
	private String uptBy;

	/** 最后修改时间 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date uptTime;

	/** 流程ID */
	private String processId;

	/** 流程状态，1=审批中，9=审批完成，10=审批终止 */
	private String processStatus;

	/** OA待办ID */
	private String oaId;

	/** 对外合同ID-最新的对外合同清单 */
	private String outContractId;

	/** 内部协议(合同)ID-合同评审 */
	private String innerContractId;

	/** 实际开工日期 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date actStartDate;

	/** 已开工月数 */
	private Integer monthsStarted;

	/** 预计竣工日期 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date expFinishDate;

	/** 实际贷款利率 */
	private BigDecimal actLoanRate;

	/** 内部拆借利率 */
	private BigDecimal innerLendRate;

	/** 当年期末净现金流 */
	private BigDecimal yearTermCash;

	/** 当年12月应付工程款 */
	private BigDecimal payProFunds;

	/** 回购总额 */
	private BigDecimal buyBackTotal;

	/** 回购期限(年) */
	private BigDecimal buyBackTerm;

	/** 回购年金=其中：本金+利息 */
	private BigDecimal buyBackYearAmt;

	/** 其中：本金 */
	private BigDecimal capitalAmt;

	/** 利息 */
	private BigDecimal inteAmt;

	/** 年金收取日期 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date yearAmtDate;

	/** 运维期付息方式，1=月度付息，2=季度付息 */
	private String payInteMethod;

	/** 项目总投 */
	private BigDecimal proTotalAmt;

	/** 预算年份 */
	private String budgetYear;

	/** 公司ID */
	private String hrOrgId;

	/** 合同建设期（月） */
	private Integer conBuildMonth;

	/** 合同竣工日期 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date conFinishDate;

	/** 运营期（月） */
	private Integer operateMonth;

	/** 中标建安下浮率 */
	private BigDecimal bidJaLowerRate;

	/** 内部建安下浮率 */
	private BigDecimal inJaLowerRate;

	/** 合同建设期利率 */
	private BigDecimal conBuildRate;

	/** 回购期折现（回报）率 */
	private BigDecimal buybackDiscRate;

	/** 月度付款比例 */
	private BigDecimal monthPayRatio;

	/** 年度付款比例 */
	private BigDecimal yearPayRatio;

	/** 竣工验收付款比例 */
	private BigDecimal finishCheckPayRatio;

	/** 竣工结算付款比例 */
	private BigDecimal finishSettPayRatio;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getCodes() {
		return codes;
	}

	public void setCodes(String codes) {
		this.codes = codes;
	}

	public String getProCode() {
		return proCode;
	}

	public void setProCode(String proCode) {
		this.proCode = proCode;
	}

	public String getAddBy() {
		return addBy;
	}

	public void setAddBy(String addBy) {
		this.addBy = addBy;
	}

	public Date getAddTime() {
		return addTime;
	}

	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}

	public String getUptBy() {
		return uptBy;
	}

	public void setUptBy(String uptBy) {
		this.uptBy = uptBy;
	}

	public Date getUptTime() {
		return uptTime;
	}

	public void setUptTime(Date uptTime) {
		this.uptTime = uptTime;
	}

	public String getProcessId() {
		return processId;
	}

	public void setProcessId(String processId) {
		this.processId = processId;
	}

	public String getProcessStatus() {
		return processStatus;
	}

	public void setProcessStatus(String processStatus) {
		this.processStatus = processStatus;
	}

	public String getOaId() {
		return oaId;
	}

	public void setOaId(String oaId) {
		this.oaId = oaId;
	}

	public String getOutContractId() {
		return outContractId;
	}

	public void setOutContractId(String outContractId) {
		this.outContractId = outContractId;
	}

	public String getInnerContractId() {
		return innerContractId;
	}

	public void setInnerContractId(String innerContractId) {
		this.innerContractId = innerContractId;
	}

	public Date getActStartDate() {
		return actStartDate;
	}

	public void setActStartDate(Date actStartDate) {
		this.actStartDate = actStartDate;
	}

	public Integer getMonthsStarted() {
		return monthsStarted;
	}

	public void setMonthsStarted(Integer monthsStarted) {
		this.monthsStarted = monthsStarted;
	}

	public Date getExpFinishDate() {
		return expFinishDate;
	}

	public void setExpFinishDate(Date expFinishDate) {
		this.expFinishDate = expFinishDate;
	}

	public BigDecimal getActLoanRate() {
		return actLoanRate;
	}

	public void setActLoanRate(BigDecimal actLoanRate) {
		this.actLoanRate = actLoanRate;
	}

	public BigDecimal getInnerLendRate() {
		return innerLendRate;
	}

	public void setInnerLendRate(BigDecimal innerLendRate) {
		this.innerLendRate = innerLendRate;
	}

	public BigDecimal getYearTermCash() {
		return yearTermCash;
	}

	public void setYearTermCash(BigDecimal yearTermCash) {
		this.yearTermCash = yearTermCash;
	}

	public BigDecimal getPayProFunds() {
		return payProFunds;
	}

	public void setPayProFunds(BigDecimal payProFunds) {
		this.payProFunds = payProFunds;
	}

	public BigDecimal getBuyBackTotal() {
		return buyBackTotal;
	}

	public void setBuyBackTotal(BigDecimal buyBackTotal) {
		this.buyBackTotal = buyBackTotal;
	}

	public BigDecimal getBuyBackTerm() {
		return buyBackTerm;
	}

	public void setBuyBackTerm(BigDecimal buyBackTerm) {
		this.buyBackTerm = buyBackTerm;
	}

	public BigDecimal getBuyBackYearAmt() {
		return buyBackYearAmt;
	}

	public void setBuyBackYearAmt(BigDecimal buyBackYearAmt) {
		this.buyBackYearAmt = buyBackYearAmt;
	}

	public BigDecimal getCapitalAmt() {
		return capitalAmt;
	}

	public void setCapitalAmt(BigDecimal capitalAmt) {
		this.capitalAmt = capitalAmt;
	}

	public BigDecimal getInteAmt() {
		return inteAmt;
	}

	public void setInteAmt(BigDecimal inteAmt) {
		this.inteAmt = inteAmt;
	}

	public Date getYearAmtDate() {
		return yearAmtDate;
	}

	public void setYearAmtDate(Date yearAmtDate) {
		this.yearAmtDate = yearAmtDate;
	}

	public String getPayInteMethod() {
		return payInteMethod;
	}

	public void setPayInteMethod(String payInteMethod) {
		this.payInteMethod = payInteMethod;
	}

	public BigDecimal getProTotalAmt() {
		return proTotalAmt;
	}

	public void setProTotalAmt(BigDecimal proTotalAmt) {
		this.proTotalAmt = proTotalAmt;
	}

	public String getBudgetYear() {
		return budgetYear;
	}

	public void setBudgetYear(String budgetYear) {
		this.budgetYear = budgetYear;
	}

	public String getHrOrgId() {
		return hrOrgId;
	}

	public void setHrOrgId(String hrOrgId) {
		this.hrOrgId = hrOrgId;
	}

	public Integer getConBuildMonth() {
		return conBuildMonth;
	}

	public void setConBuildMonth(Integer conBuildMonth) {
		this.conBuildMonth = conBuildMonth;
	}

	public Date getConFinishDate() {
		return conFinishDate;
	}

	public void setConFinishDate(Date conFinishDate) {
		this.conFinishDate = conFinishDate;
	}

	public Integer getOperateMonth() {
		return operateMonth;
	}

	public void setOperateMonth(Integer operateMonth) {
		this.operateMonth = operateMonth;
	}

	public BigDecimal getBidJaLowerRate() {
		return bidJaLowerRate;
	}

	public void setBidJaLowerRate(BigDecimal bidJaLowerRate) {
		this.bidJaLowerRate = bidJaLowerRate;
	}

	public BigDecimal getInJaLowerRate() {
		return inJaLowerRate;
	}

	public void setInJaLowerRate(BigDecimal inJaLowerRate) {
		this.inJaLowerRate = inJaLowerRate;
	}

	public BigDecimal getConBuildRate() {
		return conBuildRate;
	}

	public void setConBuildRate(BigDecimal conBuildRate) {
		this.conBuildRate = conBuildRate;
	}

	public BigDecimal getBuybackDiscRate() {
		return buybackDiscRate;
	}

	public void setBuybackDiscRate(BigDecimal buybackDiscRate) {
		this.buybackDiscRate = buybackDiscRate;
	}

	public BigDecimal getMonthPayRatio() {
		return monthPayRatio;
	}

	public void setMonthPayRatio(BigDecimal monthPayRatio) {
		this.monthPayRatio = monthPayRatio;
	}

	public BigDecimal getYearPayRatio() {
		return yearPayRatio;
	}

	public void setYearPayRatio(BigDecimal yearPayRatio) {
		this.yearPayRatio = yearPayRatio;
	}

	public BigDecimal getFinishCheckPayRatio() {
		return finishCheckPayRatio;
	}

	public void setFinishCheckPayRatio(BigDecimal finishCheckPayRatio) {
		this.finishCheckPayRatio = finishCheckPayRatio;
	}

	public BigDecimal getFinishSettPayRatio() {
		return finishSettPayRatio;
	}

	public void setFinishSettPayRatio(BigDecimal finishSettPayRatio) {
		this.finishSettPayRatio = finishSettPayRatio;
	}
}